static public void CheckOut(Actor actor)
{
+ actor.CleanUp();
Actors.Remove(actor);
+ actor = null;
}
static public void Update(GameTime gameTime)
if (i >= Actors.Count) {
i = Actors.Count - 1;
}
+
+ if (Actors.Count == 0)
+ {
+ return;
+ }
+
Actor actor = Actors[i];
for (var j = i - 1; j >= 0; j--)
{
actor.Position.Y > Game.GraphicsDevice.Viewport.Height + OutlierBounds)
{
CheckOut(actor);
+ if (actor.Parent != null)
+ {
+ actor.Parent.Children.Remove(actor);
+ }
}
}
}
+ static public void Empty()
+ {
+ foreach (Actor actor in Actors) {
+ actor.CleanUp();
+ }
+ Actors.Clear();
+ }
+
internal static void SetGame(SuperPolarity game)
{
Game = game;
}
+
+ public static void Bomb()
+ {
+ for (var i = Actors.Count - 1; i >= 0; i--)
+ {
+ var actor = Actors[i];
+ if (actor.GetType() == typeof(StandardShip))
+ {
+ CheckOut(actor);
+ Renderer.CheckOut(actor);
+ }
+ }
+ }
+
+ public static int CountBaddies()
+ {
+ return Actors.Where(a => a.GetType() == typeof(StandardShip)).Count();
+ }
}
}